package com.it.junit;

import org.junit.*;

import java.net.Socket;

/**
 * 测试类
 */
public class StringUtilTest {
//    private Socket socket;

//    private static Socket socket;

    @Before // 用来修饰实例方法，该方法会在每个测试方法执行之前执行一次
    public void test1() {
        System.out.println("--->test1 Before 执行了---------");
//        socket = new Socket(); // 初始化连接
    }

    @BeforeClass // 用来修饰实例方法，该方法会在所有测试方法执行之前执行一次
    public static void test11() {
        System.out.println("--->test11 BeforeClass 执行了---------");
//        socket = new Socket(); // 创建管道 初始化连接
    }

    @After // 用来修饰实例方法，该方法会在每个测试方法执行之后执行一次
    public void test2(){
        System.out.println("--->test2 After 执行了---------");
//        socket.close(); // 释放资源
    }

    @AfterClass // 用来修饰实例方法，该方法会在所有测试方法执行之后执行一次
    public static void test22(){
        System.out.println("--->test22 AfterClass 执行了---------");
        //        socket.close(); // 释放资源
    }

    // 对应的测试方法（必须：公共，无参，无返回值）
    @Test // 测试方法：测试类中的方法必须用它修饰才能成为测试方法，才能启动执行
    public void testPrintNumber() {
        StringUtil.printNumber("admin");
        StringUtil.printNumber(null);
        StringUtil.printNumber("222");
    }

    @Test // 测试方法
    public void testGetMaxIndex() {
        int index1 = StringUtil.getMaxIndex(null);
        System.out.println(index1);

        int index2 = StringUtil.getMaxIndex("admin");
        System.out.println(index2);

        // 断言机制：程序员可以通过预测业务方法的结果
        Assert.assertEquals("方法内部有bug!", 4, index2);
    }
}
